package com.skt.manage.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.skt.common.annotation.Excel;
import com.skt.common.core.domain.BaseEntity;

/**
 * 体检报告对象 patient_exam_reports
 * 
 * @author ffbaby
 * @date 2025-04-14
 */
public class PatientExamReports extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 体检报告ID */
    private Long reportId;

    /** 关联到patients表的patient_id */
    @Excel(name = "关联到patients表的patient_id")
    private Long patientId;

    /** 体检日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "体检日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportDate;

    /** 血型 */
    @Excel(name = "血型")
    private String bloodType;

    /** 心率（次/分钟） */
    @Excel(name = "心率", readConverterExp = "次=/分钟")
    private Long heartRate;

    /** 呼吸频率（次/分钟） */
    @Excel(name = "呼吸频率", readConverterExp = "次=/分钟")
    private Long respiratoryRate;

    /** 体温（℃） */
    @Excel(name = "体温", readConverterExp = "℃=")
    private BigDecimal bodyTemperature;

    /** 尿常规检查结果 */
    @Excel(name = "尿常规检查结果")
    private String urineRoutine;

    /** 粪便常规检查结果 */
    @Excel(name = "粪便常规检查结果")
    private String stoolRoutine;

    /** 肝功能检查结果 */
    @Excel(name = "肝功能检查结果")
    private String liverFunction;

    /** 肾功能检查结果 */
    @Excel(name = "肾功能检查结果")
    private String kidneyFunction;

    /** 心电图检查结果 */
    @Excel(name = "心电图检查结果")
    private String electrocardiogram;

    /** 影像学检查报告（如X光、CT等） */
    @Excel(name = "影像学检查报告", readConverterExp = "如=X光、CT等")
    private String imagingReports;

    /** 其他特殊检查或测试 */
    @Excel(name = "其他特殊检查或测试")
    private String otherTests;

    /** 总体评估和建议 */
    @Excel(name = "总体评估和建议")
    private String overallAssessment;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 关联到 doctors 表的 doctor_id，表示负责医生 */
    @Excel(name = "关联到 doctors 表的 doctor_id，表示负责医生")
    private Long doctorId;

    /** 体检报告状态，可选值为待完成和已完成 */
    @Excel(name = "体检报告状态，可选值为待完成和已完成")
    private String status;

    public void setReportId(Long reportId) 
    {
        this.reportId = reportId;
    }

    public Long getReportId() 
    {
        return reportId;
    }
    public void setPatientId(Long patientId) 
    {
        this.patientId = patientId;
    }

    public Long getPatientId() 
    {
        return patientId;
    }
    public void setReportDate(Date reportDate) 
    {
        this.reportDate = reportDate;
    }

    public Date getReportDate() 
    {
        return reportDate;
    }
    public void setBloodType(String bloodType) 
    {
        this.bloodType = bloodType;
    }

    public String getBloodType() 
    {
        return bloodType;
    }
    public void setHeartRate(Long heartRate) 
    {
        this.heartRate = heartRate;
    }

    public Long getHeartRate() 
    {
        return heartRate;
    }
    public void setRespiratoryRate(Long respiratoryRate) 
    {
        this.respiratoryRate = respiratoryRate;
    }

    public Long getRespiratoryRate() 
    {
        return respiratoryRate;
    }
    public void setBodyTemperature(BigDecimal bodyTemperature) 
    {
        this.bodyTemperature = bodyTemperature;
    }

    public BigDecimal getBodyTemperature() 
    {
        return bodyTemperature;
    }
    public void setUrineRoutine(String urineRoutine) 
    {
        this.urineRoutine = urineRoutine;
    }

    public String getUrineRoutine() 
    {
        return urineRoutine;
    }
    public void setStoolRoutine(String stoolRoutine) 
    {
        this.stoolRoutine = stoolRoutine;
    }

    public String getStoolRoutine() 
    {
        return stoolRoutine;
    }
    public void setLiverFunction(String liverFunction) 
    {
        this.liverFunction = liverFunction;
    }

    public String getLiverFunction() 
    {
        return liverFunction;
    }
    public void setKidneyFunction(String kidneyFunction) 
    {
        this.kidneyFunction = kidneyFunction;
    }

    public String getKidneyFunction() 
    {
        return kidneyFunction;
    }
    public void setElectrocardiogram(String electrocardiogram) 
    {
        this.electrocardiogram = electrocardiogram;
    }

    public String getElectrocardiogram() 
    {
        return electrocardiogram;
    }
    public void setImagingReports(String imagingReports) 
    {
        this.imagingReports = imagingReports;
    }

    public String getImagingReports() 
    {
        return imagingReports;
    }
    public void setOtherTests(String otherTests) 
    {
        this.otherTests = otherTests;
    }

    public String getOtherTests() 
    {
        return otherTests;
    }
    public void setOverallAssessment(String overallAssessment) 
    {
        this.overallAssessment = overallAssessment;
    }

    public String getOverallAssessment() 
    {
        return overallAssessment;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setDoctorId(Long doctorId) 
    {
        this.doctorId = doctorId;
    }

    public Long getDoctorId() 
    {
        return doctorId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("patientId", getPatientId())
            .append("reportDate", getReportDate())
            .append("bloodType", getBloodType())
            .append("heartRate", getHeartRate())
            .append("respiratoryRate", getRespiratoryRate())
            .append("bodyTemperature", getBodyTemperature())
            .append("urineRoutine", getUrineRoutine())
            .append("stoolRoutine", getStoolRoutine())
            .append("liverFunction", getLiverFunction())
            .append("kidneyFunction", getKidneyFunction())
            .append("electrocardiogram", getElectrocardiogram())
            .append("imagingReports", getImagingReports())
            .append("otherTests", getOtherTests())
            .append("overallAssessment", getOverallAssessment())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("doctorId", getDoctorId())
            .append("status", getStatus())
            .toString();
    }
}
